Tengo una función que funciona bien, pero quiero mejorar eso.
const canPrepareReview = (): boolean => { if (loading) return true; if (Object.keys(assets).length !== 0) return true; return master;}
<Button disabled={!canPrepareReview()} >Intento usar algo como esto.
<Button disabled={loading || master || Object.keys(assetsSelected).length === 0} >pero no funciona Entonces, ¿alguna idea sobre cómo se puede mejorar?
La función evalúa:
loading || Object.keys(assets).length !== 0 || master Pero en el primer atributo disabled , se niega el resultado de la función, por lo que evaluamos:
!(loading || Object.keys(assets).length !== 0 || master) Si pone eso como expresión en el atributo disabled , debería dar un comportamiento equivalente al de la solución basada en funciones.
Sin embargo, definir la función es en realidad una mejor práctica. No infle atributos con expresiones complejas.